Harden tag-triggered release workflow#36
Open
spapa013 wants to merge 2 commits intonauticalab:mainfrom
Open
Conversation
- Add workflow_dispatch trigger to release workflow
- Use go-version-file: go.mod as source of truth for Go version in both workflows
- Replace inline build logic in release.yml with task build:dist
- Add devenv --version smoke test with comment distinguishing integration-tested vs cross-compiled platforms
- Use versioned artifact naming (devenv_{version}_{os}_{arch}) with glob upload
- Extract run-test.yml as reusable workflow via workflow_call; release.yml test job delegates to it
- Add task test:ci with full coverage flags; task test now runs with -race
- Add build:dist task for CI release builds into dist/ with version-in-filename
- Add missing build:linux-arm64 task; include in build:all
- Promote VERSION, COMMIT, BUILD_TIME, GO_VERSION, LDFLAGS to global Taskfile vars, eliminating 6x duplication
Refs PLT-864
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The existing release workflow was a prototype — it had a hardcoded Go version that doesn't exist (
1.25), duplicated all build logic already owned by Taskfile, had no manual dispatch trigger, no smoke test, and no distinction between tested and untested platforms. This PR hardens the workflow to be intentional, maintainable, and the default release path.Changes
.github/workflows/release.ymlworkflow_dispatchtrigger for manual releasesgo-version-file: go.modas source of truth for Go version (fixes incorrect hardcoded"1.25")run-test.ymlas a reusable workflow viaworkflow_calltask build:distdevenv --versionsmoke test after builddevenv_{version}_{os}_{arch}) with glob upload.github/workflows/run-test.ymlworkflow_calltrigger so it can be called byrelease.ymlgo-version-file: go.mod(fixes hardcoded"1.24")go testinvocation withtask test:ciTaskfile.ymlVERSION,COMMIT,BUILD_TIME,GO_VERSION,LDFLAGSto global vars — eliminates 6x duplication across build tasksbuild:linux-arm64task; include inbuild:allbuild:dist— builds all 5 platforms intodist/with version-in-filename naming and checksums (used by CI)test:ciwith full coverage flags;testnow runs with-racecleannow removesdist/Testing
task test:citask build:distproduces correct versioned artifacts with valid checksumsdevenv version v0.0.1-test), checksums validatedNotes
workflow_dispatchis triggered without a tag theCreate Releasestep will fail — this is expected and acceptable; the trigger is useful for validating the build pipeline without publishingRun Tests / builddue to the reusable workflow job naming — this is expected behaviorCloses PLT-864